using System;
using System.Collections.Generic;
using System.Text;
using System.Data;

namespace Negocio.Controladora
{
    // Clase controladora
    public class ActualizarVentaAlojamiento
    {
        #region Metodos publicos

        public DataTable ListaServicioExtraAsignado(int codigoVenta)
        {
            try
            {
                Negocio.VentaAlojamiento bcVentaAloj = new Negocio.VentaAlojamiento();
                return bcVentaAloj.ListaServicioExtraAsignado(codigoVenta);
            }
            catch (Exception ex)
            {
                throw new Exception("ListaServicioExtraAsignado() - " + ex.Message);
            }
        }

        // Devuelve la lista de ventas de alojamiento
        public DataTable ListaVentaAlojamientoHabitacion(int codigoVenta)
        {
            try
            {
                Negocio.VentaAlojamiento bcVentaAloj = new Negocio.VentaAlojamiento();
                return bcVentaAloj.ListaVentaAlojamientoHabitacion(codigoVenta);
            }
            catch (Exception ex)
            {
                throw new Exception("ListaVentaAlojamientoHabitacion() - " + ex.Message);
            }
        }

        // Devuelve la lista de ventas de alojamiento
        public DataTable ListaVentaAlojamiento(int codigoVenta)
        {
            try
            {
                Negocio.VentaAlojamiento bcVentaAloj = new Negocio.VentaAlojamiento();
                return bcVentaAloj.ListaVentaAlojamiento(codigoVenta);
            }
            catch (Exception ex)
            {
                throw new Exception("ListaVentaAlojamiento() - " + ex.Message);
            }
        }

        // Devuelve la lista de ventas de alojamiento
        public DataTable ListaVentaAlojamiento(int codigoCliente, String fechaInicio, String fechaFin, String estadoVenta)
        {
            try
            {
                Negocio.VentaAlojamiento bcVentaAloj = new Negocio.VentaAlojamiento();
                return bcVentaAloj.ListaVentaAlojamiento(codigoCliente, fechaInicio, fechaFin, estadoVenta);
            }
            catch (Exception ex)
            {
                throw new Exception("ListaVentaAlojamiento() - " + ex.Message);
            }
        }

        // Devuelve la lista de ventas de alojamiento
        public DataTable ListaEstadoVenta(int item)
        {
            try
            {
                Negocio.Venta bcVenta = new Negocio.Venta();
                return bcVenta.ListaEstadoVenta(item);
            }
            catch (Exception ex)
            {
                throw new Exception("ListaEstadoVenta() - " + ex.Message);
            }
        }

        public DataTable MontoPorHabitacion(int codigoTipoHabitacion)
        {
            try
            {
                Negocio.VentaAlojamiento bcVenta = new Negocio.VentaAlojamiento();
                return bcVenta.MontoPorHabitacion(codigoTipoHabitacion);
            }
            catch (Exception ex)
            {
                throw new Exception("MontoPorHabitacion() - " + ex.Message);
            }
        }

        public DataTable InsertaVtaAlojamiento(int CantidadHabitacion, String FechaLlegada, String HoraLlegada,
            String FechaSalida, String HoraSalida, String NumeroReserva, int CodigoVenta, int TipoHabitacion)
        {
            try
            {
                Negocio.VentaAlojamiento bcVenta = new Negocio.VentaAlojamiento();
                return bcVenta.InsertaVtaAlojamiento(CantidadHabitacion, FechaLlegada, HoraLlegada, FechaSalida, HoraSalida, NumeroReserva,
                                          CodigoVenta, TipoHabitacion);
            }

            catch (Exception ex)
            {
                throw new Exception("InsertaVtaAlojamiento() - " + ex.Message);
            }
        }

        // Devuelve la lista de ranking de ventas
        public DataTable ListaRankingVentas(int vendedor, String fechaInicio, String fechaFin)
        {
            try
            {
                Negocio.Venta bcVenta = new Negocio.Venta();
                return bcVenta.ListaRankingVentas(vendedor, fechaInicio, fechaFin);
            }
            catch (Exception ex)
            {
                throw new Exception("ListaRankingVentas() - " + ex.Message);
            }
        }

        // Inserta una venta
        public bool InsertaVenta(Entidades.Venta vta, Entidades.VentaAlojamiento[] vtaAloj, Entidades.VentaAlojamientoDetalle[] vtaServAdic)
        {
            try
            {
                Negocio.VentaAlojamiento oVtaAloj = new Negocio.VentaAlojamiento();
                return oVtaAloj.InsertaVtaAlojamiento(vta, vtaAloj, vtaServAdic);
            }
            catch (Exception ex)
            {
                throw new Exception("InsertaVenta() - " + ex.Message);
            }
        }

        // Elimina una venta
        public bool EliminaVenta(Entidades.Venta vta)
        {
            try
            {
                Negocio.VentaAlojamiento oVtaAloj = new Negocio.VentaAlojamiento();
                return oVtaAloj.EliminaVtaAlojamiento(vta);
            }
            catch (Exception ex)
            {
                throw new Exception("EliminaVenta() - " + ex.Message);
            }
        }

        #endregion
    }
}
